home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus Special 25 / AMIGAplus Sonderheft 25 (2000)(Falke)(DE)(Track 1 of 4)[!].iso / Updates / PowerPC / pdflib / doc / changes.txt next >
Text File  |  2000-05-16  |  34KB  |  713 lines

  1. V2.01 (August 3, 1999)
  2. =====================
  3.  
  4. New features and API
  5. ====================
  6.  
  7. - Extends the JPEG reader to allow for progressive JPEG images which are
  8.   supported in PDF 1.3/Acrobat 4 (p_jpeg.c).
  9. - Applies a workaround for Photoshop-generated CMYK JPEG images. The
  10.   algorithm is taken from my jpeg2ps utility: detect the Adobe marker,
  11.   and write a suitable /Decode array to invert the 4 color planes (p_image.c).
  12. - Introduces the concept of a "default" encoding which evaluates to
  13.   macroman or winansi according to the current platform. This facilitates
  14.   writing identical test programs for all platforms. All samples except
  15.   those for Visual Basic (which is Windows-only) have been adjusted to use 
  16.   the default encoding.
  17. - Streamlines the image file interface in several ways: (pdflib.h, p_intern.h,
  18.   p_image.c, p_gif.c, p_tiff.c, p_jpeg.c, p_ccitt.c, p_basic.c,
  19.   bind/vb/pdflib_vb.idl, bind/vb/pdflib_vb.def, clients/pdfimage.c,
  20.   bind/cpp/pdflib.[h|c]pp, test/pdftest.c).
  21.   - Removes PDF_place_inline_image() since it doesn't seem to bring any
  22.     real advantage to PDFlib clients.
  23.   - Removes PDF_put_image() since the image data is "parked" in the ouput
  24.     immediately on PDF_open_*(). The /Name key is no longer in Xobjects
  25.     since it was only required by PDF 1.0.
  26.   - Removes PDF_execute_image(). Instead, PDF_place_image() can now be
  27.     called multiple times for re-using image data.
  28.   - Consolidates all pdf_close_*() functions in PDF_close_image. All
  29.     image-specific stuff is now done at the end of PDF_open_*().
  30.   - PDF_open_*() (along with the newly implied pdf_put_image()) is now 
  31.     allowed outside of page descriptions. This requires pdf_put_image()
  32.     to do a pdf_begin_contents_section() in some cases.
  33. - Adds several symbolic names for new destination zoom values in 
  34.   PDF_add_pdflink() and PDF_add_locallink() (p_annots.c).
  35. - Added an undocumented hook for placing existing images as thumbnail
  36.   for the current page. This is for a specialized application and is
  37.   not supported at the scripting layer (p_image.c, p_image.c, p_intern.h).
  38. - Changed PDF_open_memory_image() to PDF_open_image(). This makes memory
  39.   images accessible from the scripting languages, and adds support for
  40.   file and url references as placeholders for the actual image data
  41.   (pdflib.h, p_image.h, p_intern.h, bind/vb/pdflib_vb.idl, bind/cpp/pdflib.hpp, 
  42.   bind/cpp/pdflib.cpp).
  43.  
  44.  
  45. Bug fixes and enhancements
  46. ==========================
  47.  
  48. - A static resource configuration file (pdflib.upr) was always opened
  49.   when the client dynamically added resources. We skipped the file open
  50.   step since it's well reasonable to work with dynamic configuration
  51.   exclusively (p_util.c).
  52. - Fixes a crash due to an uninitialized member of the PDF struct
  53.   (resourcefile_loaded). The bug showed up when trying to use non-standard
  54.   fonts (p_basic.c).
  55. - Added a number of casts to avoid assignments to variables which are
  56.   never used. This basically affected the contents of comment and notice
  57.   lines in AFM files, which are not being used (p_afmparse.c).
  58. - Merged the metrics files for macroman and winansi core metrics
  59.   (p_metrics_win.h, p_metrics_mac.h) to a single file (p_metrics.h,
  60.   p_font.c, Makefile.in, pdflib/Makefile.in, PDFlib.hqx, *.dsp)
  61. - Makes DLLMain only visible when PDFLIB_EXPORTS is defined (p_basic.c).
  62. - Changed the default page transition duration to 0 in order to avoid
  63.   unnecessarily writing the duration key to all page dictionaries (p_hyper.c).
  64. - Changes to example path prefix in pdflib.upr to make it clearer that
  65.   the upr file has to be adjusted before it can be used (fonts/pdflib.upr).
  66. - The debug flags didn't work due to a typo (p_basic.c).
  67. - Debug flag 'u' (don't unlink PDF file on error) was implemented the wrong
  68.   way, and didn't match the documentation (p_basic.c).
  69. - Improves the memory management by avoiding "semi-allocated" aggregated
  70.   objects. This involves subtle changes around the realloc() calls,
  71.   and cleaner initialization of the reallocated data. The benefit of this
  72.   shows up in memory-out situations when the error handler pops in and tries
  73.   to free memory blocks which are not completely initialized. This may
  74.   especially happen in multi-threaded environments (p_intern.h, p_basic.c,
  75.   p_font.c, p_images.c, p_hyper.c).
  76. - Fixes some inconsistencies related to link border style, color, and
  77.   destination zoom (p_annots.c).
  78. - Removed the beveled, inset, and underlined link border styles since they
  79.   don't work as advertised in the PDF specification (p_annots.c, pdftest.c).
  80. - Improves the handling of XObject resources: formerly all Xobjects used
  81.   in the document up to the current page had been placed in the page's
  82.   resource list, potentially cluttering up the print stream generated for
  83.   the PDF. Now we only list the XObjects which are actually used on the
  84.   current page. This change will not affect Acrobat's viewing behavior.
  85. - The bpc and components values of TIFF image weren't always properly
  86.   reported by TIFFlib. We improved this by using TIFFGetFieldDefaulted()
  87.   instead of TIFFGetField() for retrieving these (p_tiff.c).
  88.  
  89.  
  90. Build process, distribution, and platform support
  91. =================================================
  92.  
  93. - Several improvements in the configure machinery (configure.in, Makefile.in):
  94.   - Added a --without-cxx option to the configure script in order to make
  95.     life easier on systems where the C++ is not correctly recognized.
  96.   - The include and lib paths for perl/zlib/tifflib shown with 
  97.     "configure --help" had some differences from the actual spelling of 
  98.     the supported options.
  99.   - Included a number of changes to the configure script required to make
  100.     the shared library versioning work on NetBSD systems.
  101.   - The --with-perlincl option for configure didn't work.
  102.   - Added a number of conditionals for the Cygwin environment.
  103.   - Always puts the version number in the file names of the shared and
  104.     static PDFlib libraries. Previously the static library ended up without
  105.     a version number in its name, possibly leading to mismatches with later
  106.     versions.
  107.   - Introduces configure variables for the names of the shared and static
  108.     libraries. This allows us to easily build the "other" library (as opposed
  109.     to the one specified when configure was run) as well.
  110. - Removes the -g option from all Makefiles (pdflib/Makefile.in,
  111.   clients/Makefile.in, util/Makefile.in, bind/c/Makefile.in,
  112.   bind/cpp/Makefile.in, test/Makefile.in)
  113. - The util Makefile is no longer called by default since the utility programs
  114.   are currently not needed by ordinary library users (Makefile.in).
  115. - Notes that the util Makefile needs an installed PDFlib library
  116.   (util/Makefile.in).
  117. - Assorted changes suggested for supporting the Cygwin32 development
  118.   environment. These involved several Makefile.in files, configure.in, and
  119.   C source modules which make use of getopt(). Most of the changes enhanced
  120.   the configuration machinery for other systems, too.
  121. - Removes the install targets for the C and C++ bindings in the main
  122.   Makefile since those targets weren't used anyway (Makefile.in).
  123. - Changes the $@.$(OBJ) construct in all Makefiles to the actual name of
  124.   the object (we don't want to use $< since it doesn't work everywhere)
  125.   (*/Makefile.in, bind/Makefile.in).
  126. - Removed a leftover text file (util/readme.txt).
  127. - Cleaned up the configuration information in the MSVC project files.
  128.   Most projects now only support a "Release" configuration; only pdflib
  129.   and test have "Debug" configurations, too (pdflib.dsp, bind/*/*.dsp).
  130. - Includes a separate project for building PDFlib as a static library
  131.   with MSVC.
  132. - Better supports the Mac distribution (Makefile.in):
  133.   - Changes the CodeWarrior project file name suffix from the odd mu
  134.     character to the more Unix-friendly .mcp. Since the project file
  135.     doesn't contain a resource fork, there's no need to use binhex (.hqx)
  136.     encoding.
  137.   - Convert the lineends in all relevant text files to the Mac convention.
  138.   - Implements a procedure for setting the correct file types for all
  139.     relevant files (uses a utility program on the Mac).
  140.   - Makes a self-extracting distribution fileset for the Mac.
  141.   - Ch